// 加载module文件夹全部模块
const mods = require('require-all')({
  dirname: __dirname + '/../modules/',
  recursive: false
})

// post 路由
async function post(fastify) {

  fastify.post('/', async function (request, reply) {
    // 登录验证 获取用户数据
    const userinfo = fastify.auth(request, reply)

    // 用户不存在
    if (!userinfo) {
      return
    }

    // 处理程序
    // 获取模块名称
    const { name } = request.query

    // 判断模块是否是函数
    if (mods[name] instanceof Function) {
      // 模块处理
      const res = await mods[name](request.body, userinfo, fastify)

      // 返回
      reply.send({
        code: 0,
        msg: 'success',
        result: res
      })
    } else {
      // 日志
      fastify.log.error(`POST ERROR:[${name}] cloud function is not define.`)

      reply.send({
        code: 1,
        msg: 'cloud function is not define.'
      })
    }
  })
}

module.exports = post